home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / LANG / C / LIB / UNIXLIB37B / !UnixLib37 / src / stdio / c / printf < prev    next >
Text File  |  1996-11-09  |  2KB  |  104 lines

  1. /****************************************************************************
  2.  *
  3.  * $Source: /unixb/home/unixlib/source/unixlib37/src/stdio/c/RCS/printf,v $
  4.  * $Date: 1996/10/30 21:59:00 $
  5.  * $Revision: 1.3 $
  6.  * $State: Rel $
  7.  * $Author: unixlib $
  8.  *
  9.  * $Log: printf,v $
  10.  * Revision 1.3  1996/10/30 21:59:00  unixlib
  11.  * Massive changes made by Nick Burret and Peter Burwood.
  12.  *
  13.  * Revision 1.2  1996/07/21 22:12:31  unixlib
  14.  * CL_0001 Nick Burret
  15.  * Improve memory handling. Remove C++ library incompatibilities.
  16.  * Improve file stat routines.
  17.  *
  18.  * Revision 1.1  1996/04/19 21:32:42  simon
  19.  * Initial revision
  20.  *
  21.  ***************************************************************************/
  22.  
  23. static const char rcs_id[] = "$Id: printf,v 1.3 1996/10/30 21:59:00 unixlib Rel $";
  24.  
  25. #include <stdlib.h>
  26. #include <stdarg.h>
  27. #include <stdio.h>
  28.  
  29. __STDIOLIB__
  30.  
  31. int
  32. vsprintf (register char *buf, register const char *format,
  33.       register va_list ap)
  34. {
  35.   return (__printf (buf, format, ap));
  36. }
  37.  
  38. int
  39. vfprintf (register FILE * f, register const char *format, register va_list ap)
  40. {
  41.   register int n;
  42.  
  43. #ifdef __PARANOID
  44.   /* __pbuf is not initialised in __stdioinit. Leave check here for safety. */
  45.   if (!__pbuf)
  46.     if (!(__pbuf = malloc (BUFSIZ << 1)))
  47.       return (-1);
  48. #endif
  49.  
  50.   n = __printf (__pbuf, format, ap);
  51.   if ((n = __fwrite (f, __pbuf, n)) < 0)
  52.     return (-1);
  53.  
  54.   if (f->o_ptr > f->o_base && !!(f->flag & _IOLBF) && __flsbuf (-1, f) < 0)
  55.     return (-1);
  56.  
  57.   return (n);
  58. }
  59.  
  60. int
  61. vprintf (register const char *format, register va_list ap)
  62. {
  63.   return (vfprintf (stdout, format, ap));
  64. }
  65.  
  66. int
  67. sprintf (register char *buf, const char *format,...)
  68. {
  69.   va_list ap;
  70.   register int r;
  71.  
  72.   va_start (ap, format);
  73.   r = vsprintf (buf, format, ap);
  74.   va_end (ap);
  75.  
  76.   return (r);
  77. }
  78.  
  79. int
  80. fprintf (register FILE * f, const char *format,...)
  81. {
  82.   va_list ap;
  83.   register int r;
  84.  
  85.   va_start (ap, format);
  86.   r = vfprintf (f, format, ap);
  87.   va_end (ap);
  88.  
  89.   return (r);
  90. }
  91.  
  92. int
  93. printf (const char *format,...)
  94. {
  95.   va_list ap;
  96.   register int r;
  97.  
  98.   va_start (ap, format);
  99.   r = vfprintf (stdout, format, ap);
  100.   va_end (ap);
  101.  
  102.   return (r);
  103. }
  104.